// ============================================================================
//
// Copyright (C) 2006-2007 Dengues
//
// Google Group: http://groups.google.com/group/dengues
// QQ Group: 24885404
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// ============================================================================
package org.dengues.designer.ui.process.parts;

import org.dengues.designer.ui.process.models.CompBlock;
import org.dengues.designer.ui.process.models.CompConnection;
import org.dengues.designer.ui.process.models.CompConnectionLabel;
import org.dengues.designer.ui.process.models.CompConnectionTrac;
import org.dengues.designer.ui.process.models.CompNode;
import org.dengues.designer.ui.process.models.CompNodeLabel;
import org.dengues.designer.ui.process.models.CompNodeStatus;
import org.dengues.designer.ui.process.models.CompNote;
import org.dengues.designer.ui.process.models.CompProcess;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartFactory;

/**
 * qzhang class global comment. Detailled comment <br/>
 */
public class CompProcessPartFactory implements EditPartFactory {

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object)
     */
    public EditPart createEditPart(EditPart context, Object model) {
        EditPart part = null;
        if (model instanceof CompProcess) {
            part = new CompProcessPart();
        } else if (model instanceof CompNote) {
            part = new CompNotePart();
        } else if (model instanceof CompNode) {
            part = new CompNodePart();
        } else if (model instanceof CompBlock) {
            part = new CompBlockPart();
        } else if (model instanceof CompConnection) {
            part = new CompConnectionPart();
        } else if (model instanceof CompNodeLabel) {
            part = new CompNodeLabelPart();
        } else if (model instanceof CompConnectionLabel) {
            part = new CompConnectionLabelPart();
        } else if (model instanceof CompNodeStatus) {
            part = new CompNodeStatusPart();
        } else if (model instanceof CompConnectionTrac) {
            part = new CompConnectionTracPart();
        }
        part.setModel(model);
        return part;
    }

}
